/* 
 *  Copyright 2012 CodeMagi, Inc.
 * 
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package com.codemagi.servlets.content.model;

import com.codemagi.login.model.IUser;
import java.util.ArrayList;

/**
 * The ISection interface defines methods and attributes that are common to 
 * page sections within the CodeMagi web application framework.
 *
 *  @version 1.0
 *  @author August Detlefsen for CodeMagi, Inc.
 */
public interface ISection {

    //GETTERS AND SETTERS -----------------------------------------------

    public void setId(Integer newValue) ;

    public Integer getId() ;

    public void setName(String newValue) ;

    public String getName() ;

    public void setTeamMembers(ArrayList newValue) ;

    public ArrayList getTeamMembers() ;


    //SPECIAL GETTERS AND SETTERS ---------------------------------------

    /**                                                                                                               
     * Returns true if the passed User is part of the team for this Section. Should always return true if        
     * user is superuser.                                                                                 
     *                                                                                                             
     * @param user       The user to check for                                                                            
     * @return boolean   True if the user is a member of this Section, false otherwise
     */
    public boolean hasUser(IUser user) ;

}
